home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / util / wb / QuickLens.lha / qlens / QLens.asm < prev    next >
Assembly Source File  |  2002-06-10  |  18KB  |  1,162 lines

  1.  
  2. NEWSIZE    EQU    $2
  3. ThisTask    EQU    $114
  4. AbsExecBase    EQU    $4
  5. _LVOSetFunction    EQU    -$1A4
  6. im_Code    EQU    $18
  7. wd_WScreen    EQU    $2E
  8. _LVOInitBitMap    EQU    -$186
  9. pr_CLI    EQU    $AC
  10. ib_FirstScreen    EQU    $3C
  11. rk_esc    EQU    $45
  12. WINDOWCLOSE    EQU    $8
  13. wd_UserPort    EQU    $56
  14. _LVOForbid    EQU    -$84
  15. RAWKEY    EQU    $400
  16. _LVOWait    EQU    -$13E
  17. _LVOFreeRaster    EQU    -$1F2
  18. _LVOWaitPort    EQU    -$180
  19. RMBTRAP    EQU    $10000
  20. MOUSEBUTTONS    EQU    $8
  21. _LVOGetMsg    EQU    -$174
  22. _LVOCloseLibrary    EQU    -$19E
  23. sc_Width    EQU    $C
  24. _LVOCloseWindow    EQU    -$48
  25. nw_Width    EQU    $4
  26. wd_LeftEdge    EQU    $4
  27. nw_Height    EQU    $6
  28. bm_Depth    EQU    $5
  29. _LVOAllocRaster    EQU    -$1EC
  30. _LVOBltBitMapRastPort    EQU    -$25E
  31. SMART_REFRESH    EQU    $0
  32. ACTIVATE    EQU    $1000
  33. sc_Flags    EQU    $14
  34. wd_MouseY    EQU    $C
  35. sc_Height    EQU    $E
  36. wd_MouseX    EQU    $E
  37. MP_SIGBIT    EQU    $F
  38. sc_MouseX    EQU    $12
  39. MOUSEMOVE    EQU    $10
  40. wd_Height    EQU    $A
  41. sc_MouseY    EQU    $10
  42. im_Class    EQU    $14
  43. _LVOBltBitMap    EQU    -$1E
  44. wd_RPort    EQU    $32
  45. wd_TopEdge    EQU    $6
  46. _LVOOpenWindow    EQU    -$CC
  47. NOCAREREFRESH    EQU    $20000
  48. _LVOWaitTOF    EQU    -$10E
  49. _LVOSetWindowTitles    EQU    -$114
  50. CUSTOMSCREEN    EQU    $F
  51. WINDOWDEPTH    EQU    $4
  52. _LVOPermit    EQU    -$8A
  53. WBENCHSCREEN    EQU    $1
  54. pr_MsgPort    EQU    $5C
  55. _LVOOpenLibrary    EQU    -$228
  56. WINDOWDRAG    EQU    $2
  57. _LVOCloseScreen    EQU    -$42
  58. wd_Width    EQU    $8
  59. rp_BitMap    EQU    $4
  60. WINDOWSIZING    EQU    $1
  61. nw_LeftEdge    EQU    $0
  62. SIZEVERIFY    EQU    $1
  63. _LVOReplyMsg    EQU    -$17A
  64. sc_BitMap    EQU    $B8
  65. _LVOFindTask    EQU    -$126
  66. rk_backspace    EQU    $41
  67. CLOSEWINDOW    EQU    $200
  68. sc_NextScreen    EQU    $0
  69. rk_w    EQU    $11
  70. _LVOScreenToBack    EQU    -$F6
  71. **********************************************************************
  72.     SECTION QLensrs000000,CODE
  73. ProgStart
  74.     opt    o+
  75.     MOVE.L    A0,BitMap
  76.     MOVE.L    AbsExecBase,A6
  77.     SUB.L    A1,A1
  78.     JSR    _LVOFindTask(A6)
  79.     MOVE.L    D0,A4
  80.     MOVE.L    A4,Task
  81.     MOVEQ    #1,D0
  82.     TST.L    pr_CLI(A4)
  83.     BNE.S    lbC000026
  84.     MOVEQ    #0,D0
  85. lbC000026    MOVE.B    D0,CLI
  86.     LEA    intuitionlibr.MSG,A1
  87.     MOVEQ    #33,D0
  88.     MOVE.L    AbsExecBase,A6
  89.     JSR    _LVOOpenLibrary(A6)
  90.     MOVE.L    D0,IntBase
  91.     BEQ    Exit
  92.     LEA    graphicslibra.MSG,A1
  93.     MOVEQ    #0,D0
  94.     MOVE.L    AbsExecBase,A6
  95.     JSR    _LVOOpenLibrary(A6)
  96.     MOVE.L    D0,GfxBase
  97.     BEQ    Exit
  98.     MOVE.W    #1,Zoom
  99.     TST.B    CLI
  100.     BEQ.S    lbC00009A
  101.     MOVE.L    BitMap,A0
  102.     CMP.B    #$32,(A0)
  103.     BEQ.S    lbC000090
  104.     CMP.B    #$34,(A0)
  105.     BNE.S    lbC0000BA
  106.     MOVE.W    #4,Zoom
  107.     BRA.S    lbC0000BA
  108.  
  109. lbC000090    MOVE.W    #2,Zoom
  110.     BRA.S    lbC0000BA
  111.  
  112. lbC00009A    MOVE.L    AbsExecBase,A6
  113.     MOVE.L    ThisTask(A6),A4
  114.     LEA    pr_MsgPort(A4),A0
  115.     JSR    _LVOWaitPort(A6)
  116.     LEA    pr_MsgPort(A4),A0
  117.     JSR    _LVOGetMsg(A6)
  118.     MOVE.L    D0,Msg
  119. lbC0000BA    MOVE.L    IntBase,A1
  120.     MOVE.W    #_LVOCloseScreen,A0
  121.     MOVE.L    #lbC0004C4,D0
  122.     MOVE.L    AbsExecBase,A6
  123.     JSR    _LVOSetFunction(A6)
  124.     MOVE.L    D0,lbL000E24
  125.     MOVE.L    D0,lbW000518
  126.     MOVE.L    IntBase,A6
  127.     MOVE.L    ib_FirstScreen(A6),A1
  128.     BSR    lbC0003E6
  129.     TST.L    D0
  130.     BNE.S    Exit
  131.     BRA    lbC000298
  132.  
  133. Exit    TST.L    lbL000E24
  134.     BEQ.S    lbC000120
  135.     MOVE.L    IntBase,A1
  136.     MOVE.W    #_LVOCloseScreen,A0
  137.     MOVE.L    lbL000E24,D0
  138.     MOVE.L    AbsExecBase,A6
  139.     JSR    _LVOSetFunction(A6)
  140.     CLR.L    Screen
  141. lbC000120    JSR    lbC000252(PC)
  142.     TST.L    Window
  143.     BEQ.S    lbC00013E
  144.     MOVE.L    Window,A0
  145.     MOVE.L    IntBase,A6
  146.     JSR    _LVOCloseWindow(A6)
  147. lbC00013E    MOVE.L    AbsExecBase,A6
  148.     TST.L    GfxBase
  149.     BEQ.S    lbC000156
  150.     MOVE.L    GfxBase,A1
  151.     JSR    _LVOCloseLibrary(A6)
  152. lbC000156    TST.L    IntBase
  153.     BEQ.S    lbC000168
  154.     MOVE.L    IntBase,A1
  155.     JSR    _LVOCloseLibrary(A6)
  156. lbC000168    TST.B    CLI
  157.     BNE.S    lbC00018C
  158.     TST.L    Msg
  159.     BEQ.S    lbC00018C
  160.     JSR    _LVOForbid(A6)
  161.     MOVE.L    Msg,A1
  162.     JSR    _LVOReplyMsg(A6)
  163.     JSR    _LVOPermit(A6)
  164. lbC00018C    CLR.L    D0
  165.     RTS
  166.  
  167. lbC000190    TST.L    Window
  168.     BEQ    lbC000252
  169.     MOVE.L    Window,A0
  170.     MOVE.W    wd_Width(A0),D0
  171.     CMP.W    #1,Zoom
  172.     BEQ.S    lbC0001CA
  173.     CMP.W    #4,Zoom
  174.     BEQ.S    lbC0001C2
  175.     ADD.W    #$10,D0
  176.     AND.W    #$FFF0,D0
  177.     BRA.S    lbC0001CA
  178.  
  179. lbC0001C2    ADD.W    #$20,D0
  180.     AND.W    #$FFE0,D0
  181. lbC0001CA    MOVE.W    D0,Width
  182.     MOVE.W    wd_Height(A0),Height
  183.     MOVE.L    wd_RPort(A0),A1
  184.     MOVE.L    rp_BitMap(A1),A1
  185.     MOVE.B    bm_Depth(A1),lbB000E55
  186.     LEA    BitMap,A0
  187.     MOVE.W    Depth,D0
  188.     MOVE.W    Width,D1
  189.     MOVE.W    Height,D2
  190.     MOVE.L    GfxBase,A6
  191.     JSR    _LVOInitBitMap(A6)
  192.     LEA    BitMap,A0
  193.     ADD.L    #8,A0
  194.     MOVEQ    #$1C,D2
  195. lbC000218    MOVE.L    #0,0(A0,D2.W)
  196.     SUBQ.L    #4,D2
  197.     BPL.S    lbC000218
  198.     MOVE.W    Depth,D4
  199.     LEA    BitMap,A4
  200.     ADD.L    #8,A4
  201. lbC000236    MOVE.W    Width,D0
  202.     MOVE.W    Height,D1
  203.     JSR    _LVOAllocRaster(A6)
  204.     MOVE.L    D0,(A4)+
  205.     BEQ.S    lbC000252
  206.     SUBQ.W    #1,D4
  207.     BNE.S    lbC000236
  208.     MOVEQ    #0,D0
  209.     RTS
  210.  
  211. lbC000252    MOVE.L    GfxBase,A6
  212.     LEA    BitMap,A4
  213.     ADD.L    #8,A4
  214. lbC000264    TST.L    (A4)
  215.     BEQ.S    lbC000282
  216.     MOVE.L    (A4),A0
  217.     MOVE.W    Width,D0
  218.     MOVE.W    Height,D1
  219.     JSR    _LVOFreeRaster(A6)
  220.     MOVE.L    #0,(A4)+
  221.     BRA.S    lbC000264
  222.  
  223. lbC000282    CLR.W    Width
  224.     CLR.W    Height
  225.     CLR.W    Depth
  226.     MOVEQ    #1,D0
  227.     RTS
  228.  
  229. lbC000298    MOVE.W    Zoom,D0
  230.     JSR    lbC00051C(PC)
  231. NextEvent    MOVE.L    Window,A0
  232.     MOVE.W    wd_MouseX(A0),D0
  233.     MOVE.W    wd_MouseY(A0),D1
  234.     CMP.W    lbW000E5A,D0
  235.     BNE.S    lbC0002C2
  236.     CMP.W    lbW000E5C,D1
  237.     BEQ.S    lbC0002DA
  238. lbC0002C2    MOVE.W    D0,lbW000E5A
  239.     MOVE.W    D1,lbW000E5C
  240.     JSR    lbC000644(PC)
  241.     CLR.W    lbW000E5E
  242. lbC0002DA    ADD.W    #1,lbW000E5E
  243.     CMP.W    #10,lbW000E5E
  244.     BGE.S    lbC0002C2
  245. lbC0002EC    CLR.B    lbB000E6A
  246.     MOVE.L    GfxBase,A6
  247.     JSR    _LVOWaitTOF(A6)
  248.     MOVE.B    #1,lbB000E6A
  249.     TST.B    lbB000E69
  250.     BNE.S    lbC0002EC
  251.     JSR    lbC0007A0(PC)
  252.     CMP.L    #CLOSEWINDOW,D1
  253.     BEQ    Exit
  254.     CMP.L    #RAWKEY,D1
  255.     BEQ.S    lbC000370
  256.     CMP.L    #MOUSEBUTTONS,D1
  257.     BEQ.S    lbC00034A
  258.     CMP.L    #NEWSIZE,D1
  259.     BNE    NextEvent
  260. lbC000338    JSR    lbC000252(PC)
  261.     JSR    lbC000190(PC)
  262.     TST.L    D0
  263.     BEQ    NextEvent
  264.     BRA    Exit
  265.  
  266. lbC00034A    CMP.W    #$69,Code
  267.     BNE    NextEvent
  268.     MOVE.W    Zoom,D0
  269.     LSL.W    #1,D0
  270.     CMP.W    #4,D0
  271.     BLE.S    lbC000368
  272.     MOVE.W    #1,D0
  273. lbC000368    JSR    lbC00051C(PC)
  274.     BRA.S    lbC000338
  275.  
  276. lbC000370    CMP.W    #rk_esc,Code
  277.     BEQ    Exit
  278.     CMP.W    #rk_backspace,Code
  279.     BEQ.S    Jump
  280.     CMP.W    #rk_w,Code
  281.     BNE    NextEvent
  282.     MOVE.L    Screen,A4
  283. ToWB    TST.L    sc_NextScreen(A4)
  284.     BEQ    NextEvent
  285.     MOVE.L    sc_NextScreen(A4),A4
  286.     MOVE.W    sc_Flags(A4),D0
  287.     AND.W    #CUSTOMSCREEN,D0
  288.     CMP.W    #WBENCHSCREEN,D0
  289.     BNE.S    ToWB
  290.     BRA.S    lbC0003D6
  291.  
  292. Jump    MOVE.L    Screen,A4
  293.     TST.L    sc_NextScreen(A4)
  294.     BEQ    NextEvent
  295.     MOVE.L    sc_NextScreen(A4),A4
  296.     MOVE.L    Screen,A0
  297.     MOVE.L    IntBase,A6
  298.     JSR    _LVOScreenToBack(A6)
  299. lbC0003D6    MOVE.L    A4,A1
  300.     BSR.S    lbC0003E6
  301.     TST.L    D0
  302.     BNE    Exit
  303.     BRA    NextEvent
  304.  
  305. lbC0003E6    MOVE.L    A1,lbL000E28
  306.     JSR    lbC000252(PC)
  307.     TST.L    Window
  308.     BEQ.S    lbC000408
  309.     MOVE.L    Window,A0
  310.     MOVE.L    IntBase,A6
  311.     JSR    _LVOCloseWindow(A6)
  312. lbC000408    CLR.L    Window
  313.     CLR.L    Screen
  314.     CLR.L    lbL000DF6
  315.     LEA    NewWindow,A0
  316.     MOVE.L    lbL000E28,A1
  317.     MOVE.W    #228,nw_Width(A0)
  318.     MOVE.W    #91,nw_Height(A0)
  319.     MOVE.W    sc_Flags(A1),D0
  320.     AND.W    #CUSTOMSCREEN,D0
  321.     MOVE.W    D0,ScreenFlags
  322.     CMP.W    #WBENCHSCREEN,D0
  323.     BEQ.S    lbC00044C
  324.     MOVE.L    A1,lbL000DF6
  325. lbC00044C    MOVE.W    sc_Width(A1),D0
  326.     SUB.W    #228,D0
  327.     LSR.W    #1,D0
  328.     MOVE.W    D0,nw_LeftEdge(A0)
  329.     MOVE.L    IntBase,A6
  330.     JSR    _LVOOpenWindow(A6)
  331.     MOVE.L    D0,Window
  332.     BEQ.S    Fail
  333.     MOVE.L    D0,A0
  334.     MOVE.L    wd_WScreen(A0),Screen
  335.     MOVE.L    wd_RPort(A0),RasterPort
  336.     MOVE.L    Window,A0
  337.     LEA    Title,A1
  338.     MOVE.L    A1,A2
  339.     CMP.B    #'B',BerroBCSSoftw.MSG
  340.     BNE.S    Fail
  341.     CMP.B    #'r',rroBCSSoftwar.MSG
  342.     BNE.S    Fail
  343.     MOVE.L    IntBase,A6
  344.     JSR    _LVOSetWindowTitles(A6)
  345.     JSR    lbC000190(PC)
  346.     TST.L    D0
  347.     BNE.S    Fail
  348.     RTS
  349.  
  350. Fail    MOVE.L    #$FFFFFFFF,D0
  351.     RTS
  352.  
  353. lbC0004C4    MOVE.B    #1,lbB000E69
  354.     MOVEM.L    D0-D7/A0-A6,-(SP)
  355.     MOVE.L    A0,D2
  356.     CMP.L    Screen,D2
  357.     BNE.S    lbC000504
  358.     MOVE.L    Screen,A4
  359.     TST.L    sc_NextScreen(A4)
  360.     BEQ.S    lbC000504
  361. lbC0004E6    TST.B    lbB000E6A
  362.     BEQ.S    lbC0004FA
  363.     MOVE.L    GfxBase,A6
  364.     JSR    _LVOWaitTOF(A6)
  365.     BRA.S    lbC0004E6
  366.  
  367. lbC0004FA    MOVE.L    0(A4),A1
  368.     JSR    lbC0003E6(PC)
  369. lbC000504    MOVEM.L    (SP)+,D0-D7/A0-A6
  370.     MOVE.L    lbL000E24,A1
  371.     CLR.B    lbB000E69
  372.     JMP    (A1)
  373.  
  374.     JMP    0
  375. lbW000518    EQU    *-2
  376.  
  377.     RTS
  378.  
  379. lbC00051C    MOVE.W    D0,Zoom
  380.     MOVE.W    #0,Scale
  381.     MOVE.W    #1,lbW000E64
  382.     CMP.W    #1,D0
  383.     BEQ.S    lbC000566
  384.     MOVE.W    #1,Scale
  385.     MOVE.W    #2,lbW000E64
  386.     CMP.W    #2,D0
  387.     BEQ.S    lbC000566
  388.     MOVE.W    #2,Scale
  389.     MOVE.W    #3,lbW000E64
  390.     CMP.W    #4,D0
  391.     BEQ.S    lbC000566
  392.     NOP
  393. lbC000566    RTS
  394.  
  395. lbC000568    MOVE.W    Height,D1
  396.     LSR.W    #2,D1
  397.     SUB.W    #1,D1
  398.     MOVE.L    D1,D0
  399.     MOVE.W    Width,D4
  400.     LSR.W    #3,D4
  401.     AND.L    #$FFFF,D4
  402.     MULU    D4,D0
  403.     ADD.L    D0,A0
  404.     MOVE.L    A0,A3
  405.     ADD.L    D0,A3
  406.     ADD.L    D0,A3
  407.     ADD.L    D0,A3
  408.     LEA    TableZ4,A2
  409. lbC000596    MOVE.L    D4,D0
  410.     LSR.L    #2,D0
  411.     SUBQ.L    #1,D0
  412.     MOVE.L    D0,D3
  413.     ASL.L    #2,D3
  414. lbC0005A0    MOVE.B    0(A0,D0.W),D2
  415.     AND.L    #$FF,D2
  416.     ASL.L    #2,D2
  417.     MOVE.L    0(A2,D2.W),D2
  418.     MOVE.L    D2,0(A3,D3.W)
  419.     ADD.L    D4,D3
  420.     MOVE.L    D2,0(A3,D3.W)
  421.     ADD.L    D4,D3
  422.     MOVE.L    D2,0(A3,D3.W)
  423.     ADD.L    D4,D3
  424.     MOVE.L    D2,0(A3,D3.W)
  425.     SUB.L    D4,D3
  426.     SUB.L    D4,D3
  427.     SUB.L    D4,D3
  428.     SUBQ.L    #4,D3
  429.     DBRA    D0,lbC0005A0
  430.  
  431.     SUB.L    D4,A0
  432.     SUB.L    D4,A3
  433.     SUB.L    D4,A3
  434.     SUB.L    D4,A3
  435.     SUB.L    D4,A3
  436.     DBRA    D1,lbC000596
  437.  
  438.     RTS
  439.  
  440. lbC0005E2    MOVE.W    Height,D1
  441.     LSR.W    #1,D1
  442.     SUB.W    #1,D1
  443.     MOVE.L    D1,D0
  444.     MOVE.W    Width,D4
  445.     LSR.W    #3,D4
  446.     AND.L    #$FFFF,D4
  447.     MULU    D4,D0
  448.     ADD.L    D0,A0
  449.     MOVE.L    A0,A3
  450.     ADD.L    D0,A3
  451.     LEA    TableZ2,A2
  452. lbC00060C    MOVE.L    D4,D0
  453.     LSR.L    #1,D0
  454.     SUBQ.L    #1,D0
  455.     MOVE.L    D0,D3
  456.     ASL.L    #1,D3
  457. lbC000616    MOVE.B    0(A0,D0.W),D2
  458.     AND.L    #$FF,D2
  459.     ASL.L    #1,D2
  460.     MOVE.W    0(A2,D2.W),D2
  461.     MOVE.W    D2,0(A3,D3.W)
  462.     ADD.W    D4,D3
  463.     MOVE.W    D2,0(A3,D3.W)
  464.     SUB.W    D4,D3
  465.     SUBQ.L    #2,D3
  466.     DBRA    D0,lbC000616
  467.  
  468.     SUB.L    D4,A0
  469.     SUB.L    D4,A3
  470.     SUB.L    D4,A3
  471.     DBRA    D1,lbC00060C
  472.  
  473.     RTS
  474.  
  475. lbC000644    MOVE.L    Window,A0
  476.     MOVE.W    wd_Width(A0),D4
  477.     SUBQ.W    #4,D4
  478.     MOVE.W    lbW000E64,D0
  479.     LSR.W    D0,D4
  480.     MOVE.W    D4,D5
  481.     NEG.W    D5
  482.     MOVE.L    Screen,A1
  483.     ADD.W    sc_Width(A1),D5
  484.     MOVE.W    wd_Height(A0),D6
  485.     SUB.W    #11,D6
  486.     LSR.W    D0,D6
  487.     MOVE.W    D6,D7
  488.     NEG.W    D7
  489.     ADD.W    sc_Height(A1),D7
  490.     LEA    sc_BitMap(A1),A0
  491.     MOVE.W    sc_MouseX(A1),D0
  492.     CMP.W    D5,D0
  493.     BLT.S    lbC00068A
  494.     MOVE.W    D5,D0
  495.     SUB.W    D4,D0
  496.     BRA.S    lbC000690
  497.  
  498. lbC00068A    SUB.W    D4,D0
  499.     BPL.S    lbC000690
  500.     MOVEQ    #0,D0
  501. lbC000690    MOVE.W    sc_MouseY(A1),D1
  502.     CMP.W    D7,D1
  503.     BLT.S    lbC00069E
  504.     MOVE.W    D7,D1
  505.     SUB.W    D6,D1
  506.     BRA.S    lbC0006A4
  507.  
  508. lbC00069E    SUB.W    D6,D1
  509.     BPL.S    lbC0006A4
  510.     MOVEQ    #0,D1
  511. lbC0006A4    LEA    BitMap,A1
  512.     MOVEQ    #0,D2
  513.     MOVEQ    #0,D3
  514.     MOVE.W    Width,D4
  515.     MOVE.W    Scale,D6
  516.     LSR.W    D6,D4
  517.     MOVE.W    Height,D5
  518.     LSR.W    D6,D5
  519.     MOVE.L    #$C0,D6
  520.     MOVE.L    #$FF,D7
  521.     SUB.L    A2,A2
  522.     MOVE.L    GfxBase,A6
  523.     JSR    _LVOBltBitMap(A6)
  524.     CMP.W    #1,Zoom
  525.     BEQ.S    lbC00070E
  526.     LEA    BitMap,A5
  527.     ADD.L    #8,A5
  528. lbC0006F2    TST.L    (A5)
  529.     BEQ.S    lbC00070E
  530.     MOVE.L    (A5)+,A0
  531.     CMP.W    #4,Zoom
  532.     BEQ.S    lbC000708
  533.     BSR    lbC0005E2
  534.     BRA.S    lbC0006F2
  535.  
  536. lbC000708    BSR    lbC000568
  537.     BRA.S    lbC0006F2
  538.  
  539. lbC00070E    LEA    BitMap,A0
  540.     MOVEQ    #0,D0
  541.     MOVEQ    #0,D1
  542.     MOVE.L    RasterPort,A1
  543.     MOVEQ    #2,D2
  544.     MOVEQ    #10-10,D3
  545.     MOVE.L    Window,A2
  546.     MOVE.B    55(A2),D3
  547.     MOVE.W    wd_Width(A2),D4
  548.     SUBQ.W    #4,D4
  549.     MOVE.W    wd_Height(A2),D5
  550. *    SUB.W    #11,D5
  551.     SUB.W    D3,D5
  552.     SUBQ.W    #1,D5
  553.     MOVE.L    #$C0,D6
  554. *    MOVE.L    #$FF,D7
  555. *    SUB.L    A2,A2
  556.     MOVE.L    GfxBase,A6
  557.     JSR    _LVOBltBitMapRastPort(A6)
  558.     RTS
  559.  
  560.     MOVE.L    Window,A5
  561.     BRA.S    lbC000772
  562.  
  563. lbC00075A    MOVE.L    A5,A0
  564.     MOVE.L    AbsExecBase,A6
  565.     MOVE.L    wd_UserPort(A0),A0
  566.     MOVE.B    MP_SIGBIT(A0),D1
  567.     MOVEQ    #1,D0
  568.     LSL.L    D1,D0
  569.     JSR    _LVOWait(A6)
  570. lbC000772    MOVE.L    A5,A0
  571.     MOVE.L    AbsExecBase,A6
  572.     MOVE.L    wd_UserPort(A0),A0
  573.     JSR    _LVOGetMsg(A6)
  574.     MOVEQ    #0,D1
  575.     MOVE.L    D0,A1
  576.     TST.L    D0
  577.     BEQ.S    lbC00075A
  578.     MOVE.W    im_Code(A1),Code
  579.     MOVE.L    im_Class(A1),D1
  580.     MOVE.L    D1,-(SP)
  581.     JSR    _LVOReplyMsg(A6)
  582.     MOVE.L    (SP)+,D1
  583.     RTS
  584.  
  585. lbC0007A0    MOVE.L    Window,A0
  586.     MOVE.L    AbsExecBase,A6
  587.     MOVE.L    wd_UserPort(A0),A0
  588.     JSR    _LVOGetMsg(A6)
  589.     MOVE.L    D0,A1
  590.     TST.L    D0
  591.     BEQ.S    lbC0007D4
  592.     MOVE.W    im_Code(A1),Code
  593.     MOVE.L    im_Class(A1),D4
  594.     JSR    _LVOReplyMsg(A6)
  595.     CMP.L    #MOUSEMOVE,D4
  596.     BEQ.S    lbC0007A0
  597.     MOVE.L    D4,D0
  598. lbC0007D4    MOVE.L    D0,D1
  599.     RTS
  600.  
  601. TableZ2    dc.w    0
  602.     dc.w    3
  603.     dc.w    12
  604.     dc.w    15
  605.     dc.w    $30
  606.     dc.w    $33
  607.     dc.w    $3C
  608.     dc.w    $3F
  609.     dc.w    $C0
  610.     dc.w    $C3
  611.     dc.w    $CC
  612.     dc.w    $CF
  613.     dc.w    $F0
  614.     dc.w    $F3
  615.     dc.w    $FC
  616.     dc.w    $FF
  617.     dc.w    $300
  618.     dc.w    $303
  619.     dc.w    $30C
  620.     dc.w    $30F
  621.     dc.w    $330
  622.     dc.w    $333
  623.     dc.w    $33C
  624.     dc.w    $33F
  625.     dc.w    $3C0
  626.     dc.w    $3C3
  627.     dc.w    $3CC
  628.     dc.w    $3CF
  629.     dc.w    $3F0
  630.     dc.w    $3F3
  631.     dc.w    $3FC
  632.     dc.w    $3FF
  633.     dc.w    $C00
  634.     dc.w    $C03
  635.     dc.w    $C0C
  636.     dc.w    $C0F
  637.     dc.w    $C30
  638.     dc.w    $C33
  639.     dc.w    $C3C
  640.     dc.w    $C3F
  641.     dc.w    $CC0
  642.     dc.w    $CC3
  643.     dc.w    $CCC
  644.     dc.w    $CCF
  645.     dc.w    $CF0
  646.     dc.w    $CF3
  647.     dc.w    $CFC
  648.     dc.w    $CFF
  649.     dc.w    $F00
  650.     dc.w    $F03
  651.     dc.w    $F0C
  652.     dc.w    $F0F
  653.     dc.w    $F30
  654.     dc.w    $F33
  655.     dc.w    $F3C
  656.     dc.w    $F3F
  657.     dc.w    $FC0
  658.     dc.w    $FC3
  659.     dc.w    $FCC
  660.     dc.w    $FCF
  661.     dc.w    $FF0
  662.     dc.w    $FF3
  663.     dc.w    $FFC
  664.     dc.w    $FFF
  665.     dc.w    $3000
  666.     dc.w    $3003
  667.     dc.w    $300C
  668.     dc.w    $300F
  669.     dc.w    $3030
  670.     dc.w    $3033
  671.     dc.w    $303C
  672.     dc.w    $303F
  673.     dc.w    $30C0
  674.     dc.w    $30C3
  675.     dc.w    $30CC
  676.     dc.w    $30CF
  677.     dc.w    $30F0
  678.     dc.w    $30F3
  679.     dc.w    $30FC
  680.     dc.w    $30FF
  681.     dc.w    $3300
  682.     dc.w    $3303
  683.     dc.w    $330C
  684.     dc.w    $330F
  685.     dc.w    $3330
  686.     dc.w    $3333
  687.     dc.w    $333C
  688.     dc.w    $333F
  689.     dc.w    $33C0
  690.     dc.w    $33C3
  691.     dc.w    $33CC
  692.     dc.w    $33CF
  693.     dc.w    $33F0
  694.     dc.w    $33F3
  695.     dc.w    $33FC
  696.     dc.w    $33FF
  697.     dc.w    $3C00
  698.     dc.w    $3C03
  699.     dc.w    $3C0C
  700.     dc.w    $3C0F
  701.     dc.w    $3C30
  702.     dc.w    $3C33
  703.     dc.w    $3C3C
  704.     dc.w    $3C3F
  705.     dc.w    $3CC0
  706.     dc.w    $3CC3
  707.     dc.w    $3CCC
  708.     dc.w    $3CCF
  709.     dc.w    $3CF0
  710.     dc.w    $3CF3
  711.     dc.w    $3CFC
  712.     dc.w    $3CFF
  713.     dc.w    $3F00
  714.     dc.w    $3F03
  715.     dc.w    $3F0C
  716.     dc.w    $3F0F
  717.     dc.w    $3F30
  718.     dc.w    $3F33
  719.     dc.w    $3F3C
  720.     dc.w    $3F3F
  721.     dc.w    $3FC0
  722.     dc.w    $3FC3
  723.     dc.w    $3FCC
  724.     dc.w    $3FCF
  725.     dc.w    $3FF0
  726.     dc.w    $3FF3
  727.     dc.w    $3FFC
  728.     dc.w    $3FFF
  729.     dc.w    $C000
  730.     dc.w    $C003
  731.     dc.w    $C00C
  732.     dc.w    $C00F
  733.     dc.w    $C030
  734.     dc.w    $C033
  735.     dc.w    $C03C
  736.     dc.w    $C03F
  737.     dc.w    $C0C0
  738.     dc.w    $C0C3
  739.     dc.w    $C0CC
  740.     dc.w    $C0CF
  741.     dc.w    $C0F0
  742.     dc.w    $C0F3
  743.     dc.w    $C0FC
  744.     dc.w    $C0FF
  745.     dc.w    $C300
  746.     dc.w    $C303
  747.     dc.w    $C30C
  748.     dc.w    $C30F
  749.     dc.w    $C330
  750.     dc.w    $C333
  751.     dc.w    $C33C
  752.     dc.w    $C33F
  753.     dc.w    $C3C0
  754.     dc.w    $C3C3
  755.     dc.w    $C3CC
  756.     dc.w    $C3CF
  757.     dc.w    $C3F0
  758.     dc.w    $C3F3
  759.     dc.w    $C3FC
  760.     dc.w    $C3FF
  761.     dc.w    $CC00
  762.     dc.w    $CC03
  763.     dc.w    $CC0C
  764.     dc.w    $CC0F
  765.     dc.w    $CC30
  766.     dc.w    $CC33
  767.     dc.w    $CC3C
  768.     dc.w    $CC3F
  769.     dc.w    $CCC0
  770.     dc.w    $CCC3
  771.     dc.w    $CCCC
  772.     dc.w    $CCCF
  773.     dc.w    $CCF0
  774.     dc.w    $CCF3
  775.     dc.w    $CCFC
  776.     dc.w    $CCFF
  777.     dc.w    $CF00
  778.     dc.w    $CF03
  779.     dc.w    $CF0C
  780.     dc.w    $CF0F
  781.     dc.w    $CF30
  782.     dc.w    $CF33
  783.     dc.w    $CF3C
  784.     dc.w    $CF3F
  785.     dc.w    $CFC0
  786.     dc.w    $CFC3
  787.     dc.w    $CFCC
  788.     dc.w    $CFCF
  789.     dc.w    $CFF0
  790.     dc.w    $CFF3
  791.     dc.w    $CFFC
  792.     dc.w    $CFFF
  793.     dc.w    $F000
  794.     dc.w    $F003
  795.     dc.w    $F00C
  796.     dc.w    $F00F
  797.     dc.w    $F030
  798.     dc.w    $F033
  799.     dc.w    $F03C
  800.     dc.w    $F03F
  801.     dc.w    $F0C0
  802.     dc.w    $F0C3
  803.     dc.w    $F0CC
  804.     dc.w    $F0CF
  805.     dc.w    $F0F0
  806.     dc.w    $F0F3
  807.     dc.w    $F0FC
  808.     dc.w    $F0FF
  809.     dc.w    $F300
  810.     dc.w    $F303
  811.     dc.w    $F30C
  812.     dc.w    $F30F
  813.     dc.w    $F330
  814.     dc.w    $F333
  815.     dc.w    $F33C
  816.     dc.w    $F33F
  817.     dc.w    $F3C0
  818.     dc.w    $F3C3
  819.     dc.w    $F3CC
  820.     dc.w    $F3CF
  821.     dc.w    $F3F0
  822.     dc.w    $F3F3
  823.     dc.w    $F3FC
  824.     dc.w    $F3FF
  825.     dc.w    $FC00
  826.     dc.w    $FC03
  827.     dc.w    $FC0C
  828.     dc.w    $FC0F
  829.     dc.w    $FC30
  830.     dc.w    $FC33
  831.     dc.w    $FC3C
  832.     dc.w    $FC3F
  833.     dc.w    $FCC0
  834.     dc.w    $FCC3
  835.     dc.w    $FCCC
  836.     dc.w    $FCCF
  837.     dc.w    $FCF0
  838.     dc.w    $FCF3
  839.     dc.w    $FCFC
  840.     dc.w    $FCFF
  841.     dc.w    $FF00
  842.     dc.w    $FF03
  843.     dc.w    $FF0C
  844.     dc.w    $FF0F
  845.     dc.w    $FF30
  846.     dc.w    $FF33
  847.     dc.w    $FF3C
  848.     dc.w    $FF3F
  849.     dc.w    $FFC0
  850.     dc.w    $FFC3
  851.     dc.w    $FFCC
  852.     dc.w    $FFCF
  853.     dc.w    $FFF0
  854.     dc.w    $FFF3
  855.     dc.w    $FFFC
  856.     dc.w    $FFFF
  857. TableZ4    dc.l    0
  858.     dc.l    15
  859.     dc.l    $F0
  860.     dc.l    $FF
  861.     dc.l    $F00
  862.     dc.l    $F0F
  863.     dc.l    $FF0
  864.     dc.l    $FFF
  865.     dc.l    $F000
  866.     dc.l    $F00F
  867.     dc.l    $F0F0
  868.     dc.l    $F0FF
  869.     dc.l    $FF00
  870.     dc.l    $FF0F
  871.     dc.l    $FFF0
  872.     dc.l    $FFFF
  873.     dc.l    $F0000
  874.     dc.l    $F000F
  875.     dc.l    $F00F0
  876.     dc.l    $F00FF
  877.     dc.l    $F0F00
  878.     dc.l    $F0F0F
  879.     dc.l    $F0FF0
  880.     dc.l    $F0FFF
  881.     dc.l    $FF000
  882.     dc.l    $FF00F
  883.     dc.l    $FF0F0
  884.     dc.l    $FF0FF
  885.     dc.l    $FFF00
  886.     dc.l    $FFF0F
  887.     dc.l    $FFFF0
  888.     dc.l    $FFFFF
  889.     dc.l    $F00000
  890.     dc.l    $F0000F
  891.     dc.l    $F000F0
  892.     dc.l    $F000FF
  893.     dc.l    $F00F00
  894.     dc.l    $F00F0F
  895.     dc.l    $F00FF0
  896.     dc.l    $F00FFF
  897.     dc.l    $F0F000
  898.     dc.l    $F0F00F
  899.     dc.l    $F0F0F0
  900.     dc.l    $F0F0FF
  901.     dc.l    $F0FF00
  902.     dc.l    $F0FF0F
  903.     dc.l    $F0FFF0
  904.     dc.l    $F0FFFF
  905.     dc.l    $FF0000
  906.     dc.l    $FF000F
  907.     dc.l    $FF00F0
  908.     dc.l    $FF00FF
  909.     dc.l    $FF0F00
  910.     dc.l    $FF0F0F
  911.     dc.l    $FF0FF0
  912.     dc.l    $FF0FFF
  913.     dc.l    $FFF000
  914.     dc.l    $FFF00F
  915.     dc.l    $FFF0F0
  916.     dc.l    $FFF0FF
  917.     dc.l    $FFFF00
  918.     dc.l    $FFFF0F
  919.     dc.l    $FFFFF0
  920.     dc.l    $FFFFFF
  921.     dc.l    $F000000
  922.     dc.l    $F00000F
  923.     dc.l    $F0000F0
  924.     dc.l    $F0000FF
  925.     dc.l    $F000F00
  926.     dc.l    $F000F0F
  927.     dc.l    $F000FF0
  928.     dc.l    $F000FFF
  929.     dc.l    $F00F000
  930.     dc.l    $F00F00F
  931.     dc.l    $F00F0F0
  932.     dc.l    $F00F0FF
  933.     dc.l    $F00FF00
  934.     dc.l    $F00FF0F
  935.     dc.l    $F00FFF0
  936.     dc.l    $F00FFFF
  937.     dc.l    $F0F0000
  938.     dc.l    $F0F000F
  939.     dc.l    $F0F00F0
  940.     dc.l    $F0F00FF
  941.     dc.l    $F0F0F00
  942.     dc.l    $F0F0F0F
  943.     dc.l    $F0F0FF0
  944.     dc.l    $F0F0FFF
  945.     dc.l    $F0FF000
  946.     dc.l    $F0FF00F
  947.     dc.l    $F0FF0F0
  948.     dc.l    $F0FF0FF
  949.     dc.l    $F0FFF00
  950.     dc.l    $F0FFF0F
  951.     dc.l    $F0FFFF0
  952.     dc.l    $F0FFFFF
  953.     dc.l    $FF00000
  954.     dc.l    $FF0000F
  955.     dc.l    $FF000F0
  956.     dc.l    $FF000FF
  957.     dc.l    $FF00F00
  958.     dc.l    $FF00F0F
  959.     dc.l    $FF00FF0
  960.     dc.l    $FF00FFF
  961.     dc.l    $FF0F000
  962.     dc.l    $FF0F00F
  963.     dc.l    $FF0F0F0
  964.     dc.l    $FF0F0FF
  965.     dc.l    $FF0FF00
  966.     dc.l    $FF0FF0F
  967.     dc.l    $FF0FFF0
  968.     dc.l    $FF0FFFF
  969.     dc.l    $FFF0000
  970.     dc.l    $FFF000F
  971.     dc.l    $FFF00F0
  972.     dc.l    $FFF00FF
  973.     dc.l    $FFF0F00
  974.     dc.l    $FFF0F0F
  975.     dc.l    $FFF0FF0
  976.     dc.l    $FFF0FFF
  977.     dc.l    $FFFF000
  978.     dc.l    $FFFF00F
  979.     dc.l    $FFFF0F0
  980.     dc.l    $FFFF0FF
  981.     dc.l    $FFFFF00
  982.     dc.l    $FFFFF0F
  983.     dc.l    $FFFFFF0
  984.     dc.l    $FFFFFFF
  985.     dc.l    $F0000000
  986.     dc.l    $F000000F
  987.     dc.l    $F00000F0
  988.     dc.l    $F00000FF
  989.     dc.l    $F0000F00
  990.     dc.l    $F0000F0F
  991.     dc.l    $F0000FF0
  992.     dc.l    $F0000FFF
  993.     dc.l    $F000F000
  994.     dc.l    $F000F00F
  995.     dc.l    $F000F0F0
  996.     dc.l    $F000F0FF
  997.     dc.l    $F000FF00
  998.     dc.l    $F000FF0F
  999.     dc.l    $F000FFF0
  1000.     dc.l    $F000FFFF
  1001.     dc.l    $F00F0000
  1002.     dc.l    $F00F000F
  1003.     dc.l    $F00F00F0
  1004.     dc.l    $F00F00FF
  1005.     dc.l    $F00F0F00
  1006.     dc.l    $F00F0F0F
  1007.     dc.l    $F00F0FF0
  1008.     dc.l    $F00F0FFF
  1009.     dc.l    $F00FF000
  1010.     dc.l    $F00FF00F
  1011.     dc.l    $F00FF0F0
  1012.     dc.l    $F00FF0FF
  1013.     dc.l    $F00FFF00
  1014.     dc.l    $F00FFF0F
  1015.     dc.l    $F00FFFF0
  1016.     dc.l    $F00FFFFF
  1017.     dc.l    $F0F00000
  1018.     dc.l    $F0F0000F
  1019.     dc.l    $F0F000F0
  1020.     dc.l    $F0F000FF
  1021.     dc.l    $F0F00F00
  1022.     dc.l    $F0F00F0F
  1023.     dc.l    $F0F00FF0
  1024.     dc.l    $F0F00FFF
  1025.     dc.l    $F0F0F000
  1026.     dc.l    $F0F0F00F
  1027.     dc.l    $F0F0F0F0
  1028.     dc.l    $F0F0F0FF
  1029.     dc.l    $F0F0FF00
  1030.     dc.l    $F0F0FF0F
  1031.     dc.l    $F0F0FFF0
  1032.     dc.l    $F0F0FFFF
  1033.     dc.l    $F0FF0000
  1034.     dc.l    $F0FF000F
  1035.     dc.l    $F0FF00F0
  1036.     dc.l    $F0FF00FF
  1037.     dc.l    $F0FF0F00
  1038.     dc.l    $F0FF0F0F
  1039.     dc.l    $F0FF0FF0
  1040.     dc.l    $F0FF0FFF
  1041.     dc.l    $F0FFF000
  1042.     dc.l    $F0FFF00F
  1043.     dc.l    $F0FFF0F0
  1044.     dc.l    $F0FFF0FF
  1045.     dc.l    $F0FFFF00
  1046.     dc.l    $F0FFFF0F
  1047.     dc.l    $F0FFFFF0
  1048.     dc.l    $F0FFFFFF
  1049.     dc.l    $FF000000
  1050.     dc.l    $FF00000F
  1051.     dc.l    $FF0000F0
  1052.     dc.l    $FF0000FF
  1053.     dc.l    $FF000F00
  1054.     dc.l    $FF000F0F
  1055.     dc.l    $FF000FF0
  1056.     dc.l    $FF000FFF
  1057.     dc.l    $FF00F000
  1058.     dc.l    $FF00F00F
  1059.     dc.l    $FF00F0F0
  1060.     dc.l    $FF00F0FF
  1061.     dc.l    $FF00FF00
  1062.     dc.l    $FF00FF0F
  1063.     dc.l    $FF00FFF0
  1064.     dc.l    $FF00FFFF
  1065.     dc.l    $FF0F0000
  1066.     dc.l    $FF0F000F
  1067.     dc.l    $FF0F00F0
  1068.     dc.l    $FF0F00FF
  1069.     dc.l    $FF0F0F00
  1070.     dc.l    $FF0F0F0F
  1071.     dc.l    $FF0F0FF0
  1072.     dc.l    $FF0F0FFF
  1073.     dc.l    $FF0FF000
  1074.     dc.l    $FF0FF00F
  1075.     dc.l    $FF0FF0F0
  1076.     dc.l    $FF0FF0FF
  1077.     dc.l    $FF0FFF00
  1078.     dc.l    $FF0FFF0F
  1079.     dc.l    $FF0FFFF0
  1080.     dc.l    $FF0FFFFF
  1081.     dc.l    $FFF00000
  1082.     dc.l    $FFF0000F
  1083.     dc.l    $FFF000F0
  1084.     dc.l    $FFF000FF
  1085.     dc.l    $FFF00F00
  1086.     dc.l    $FFF00F0F
  1087.     dc.l    $FFF00FF0
  1088.     dc.l    $FFF00FFF
  1089.     dc.l    $FFF0F000
  1090.     dc.l    $FFF0F00F
  1091.     dc.l    $FFF0F0F0
  1092.     dc.l    $FFF0F0FF
  1093.     dc.l    $FFF0FF00
  1094.     dc.l    $FFF0FF0F
  1095.     dc.l    $FFF0FFF0
  1096.     dc.l    $FFF0FFFF
  1097.     dc.l    $FFFF0000
  1098.     dc.l    $FFFF000F
  1099.     dc.l    $FFFF00F0
  1100.     dc.l    $FFFF00FF
  1101.     dc.l    $FFFF0F00
  1102.     dc.l    $FFFF0F0F
  1103.     dc.l    $FFFF0FF0
  1104.     dc.l    $FFFF0FFF
  1105.     dc.l    $FFFFF000
  1106.     dc.l    $FFFFF00F
  1107.     dc.l    $FFFFF0F0
  1108.     dc.l    $FFFFF0FF
  1109.     dc.l    $FFFFFF00
  1110.     dc.l    $FFFFFF0F
  1111.     dc.l    $FFFFFFF0
  1112.     dc.l    $FFFFFFFF
  1113.  
  1114.     SECTION QLensrs000DD8,DATA
  1115. NewWindow    dc.w    206
  1116.     dc.w    12
  1117.     dc.w    228
  1118.     dc.w    91
  1119.     dc.b    0
  1120.     dc.b    1
  1121.     dc.l    (SIZEVERIFY!NEWSIZE!MOUSEBUTTONS!MOUSEMOVE!CLOSEWINDOW!RAWKEY)
  1122.     dc.l    (WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH!NOCAREREFRESH!RMBTRAP!ACTIVATE)
  1123.     dcb.l    2,0
  1124.     dc.l    Title
  1125. lbL000DF6    dcb.l    2,0
  1126.     dc.w    126
  1127.     dc.w    27
  1128.     dc.w    800
  1129.     dc.w    500
  1130. ScreenFlags    dc.w    WBENCHSCREEN
  1131. IntBase    dc.l    0
  1132. GfxBase    dc.l    0
  1133. Msg    dc.l    0
  1134. Task    dc.l    0
  1135. Window    dc.l    0
  1136. Screen    dc.l    0
  1137. RasterPort    dc.l    0
  1138. lbL000E24    dc.l    0
  1139. lbL000E28    dc.l    0
  1140. BitMap    dcb.l    10,0
  1141. Depth    dc.b    0
  1142. lbB000E55    dc.b    0
  1143. Width    dc.w    0
  1144. Height    dc.w    0
  1145. lbW000E5A    dc.w    $FFFF
  1146. lbW000E5C    dc.w    $FFFF
  1147. lbW000E5E    dc.w    0
  1148. Zoom    dc.w    0
  1149. Scale    dc.w    0
  1150. lbW000E64    dc.w    0
  1151. Code    dc.w    0
  1152. CLI    dc.b    0
  1153. lbB000E69    dc.b    0
  1154. lbB000E6A    dc.b    0
  1155. intuitionlibr.MSG    dc.b    'intuition.library',0
  1156. graphicslibra.MSG    dc.b    'graphics.library',0
  1157.     dc.b    '$VER: '
  1158. Title    dc.b    'QLENS: QuickLens  v2.02  by Mike '
  1159. BerroBCSSoftw.MSG    dc.b    'Be'
  1160. rroBCSSoftwar.MSG    dc.b    'rro/BCS Software',0,0
  1161.     dc.b    0
  1162.